// 本地存储工具类

const TOKEN_KEY = 'token'
const USER_INFO_KEY = 'formInfo'
const PROJECT_KEY = 'projectId'

export const StorageUtil = {
  /**
   * 设置token
   * @param {string} token 用户token
   */
  setToken(token) {
    localStorage.setItem(TOKEN_KEY, token)
  },

  /**
   * 获取token
   * @returns {string|null} 用户token
   */
  getToken() {
    return localStorage.getItem(TOKEN_KEY)
  },

  /**
   * 移除token
   */
  removeToken() {
    localStorage.removeItem(TOKEN_KEY)
  },

  /**
   * 设置用户信息
   * @param {Object} userInfo 用户信息对象
   */
  setUserInfo(userInfo) {
    localStorage.setItem(USER_INFO_KEY, JSON.stringify(userInfo))
  },

  /**
   * 获取用户信息
   * @returns {Object|null} 用户信息对象
   */
  getUserInfo() {
    const userInfo = localStorage.getItem(USER_INFO_KEY)
    return userInfo ? JSON.parse(userInfo) : null
  },

  /**
   * 移除用户信息
   */
  removeUserInfo() {
    localStorage.removeItem(USER_INFO_KEY)
  },

  /**
   * 设置项目id
   * @param {string} projectId 项目id
   */
  setProjectId(projectId) {
    localStorage.setItem(PROJECT_KEY, projectId)
  },

  /**
   * 获取项目id
   * @returns {string}
   */
  getProjectId() {
    return localStorage.getItem(PROJECT_KEY)
  },

  /**
   * 移除项目id
   */
  removeProjectId() {
    localStorage.removeItem(PROJECT_KEY)
  },

  /**
   * 清除所有存储
   */
  clear() {
    localStorage.removeItem(TOKEN_KEY)
    localStorage.removeItem(USER_INFO_KEY)
    // localStorage.removeItem(PROJECT_KEY)
  }
}

export default StorageUtil
